#include <cstring>
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;

const int maxn = 1e3 + 17;
string s[maxn];
int tot;

int main() {
	string tmp;
	while(cin >> tmp) {
		//getchar会读取每个单词后面的空格或'\n'，读到'\n'表示一行结束，break。
		//题意说实话有点模糊。如果规定输入是一行单词，以空格分隔，就没有问题。
		//有个小问题是如果最后一个单词后面打个空格，再打回车，这时ch是' '(ASCII 32)，输入不会结束
		s[++tot] = tmp;
		char ch = getchar();
		if(ch == '\n') break;
	}
	sort(s + 1, s + 1 + tot);
	for(int i = 1; i <= tot; i++) cout << s[i] << " \n"[i == tot];
	return 0;
}